This invention relates to data communication, and more particularly to circuitry for receiving data signals that have been communicated from a data signal source.
Data is frequently transmitted serially. Typically the data represents bytes of information that are being transmitted one after another. The usual definition of a byte is eight bits, but as used herein “byte” can refer to any plural number of bits such as eight bits, nine bits, ten bits, 11 bits, or fewer or more than these numbers of bits. When the data is received, one task that the receiving circuitry must typically perform is to find the boundaries between the successive bytes in the received serial bit stream. This may be referred to as “byte alignment” or “byte synchronization”.
To facilitate byte alignment, it is typical to transmit special bytes at the start of a packet of bytes of data. The receiver circuitry looks for the special byte pattern in the incoming data. When the receiver circuitry finds the special byte pattern, it knows where the boundaries between subsequent bytes are. This makes it possible for the receiver circuitry to properly handle the subsequent bytes of data.
A problem that can occur with known byte alignment circuitry is the following. It is difficult or impossible for such circuitry, once aligned, to properly deal with subsequent receipt of the special byte pattern, especially if that pattern is received out of alignment with what has already been determined to be proper byte alignment. Such an out-of-alignment special byte pattern may be due to such circumstances as: (1) the special byte pattern is not really a special byte, but just some bits in one data byte followed by some bits in the succeeding data byte that together happen to have the same pattern as a special byte; or (2) byte alignment has been lost, and byte alignment should be re-established based on the newly received special bytes.